<?php 
class  CategoryController extends AuthController{
	private $model;
	/**
	 * 初始化
	 */
	 public function __init(){
	 	parent::__init();
		//K就是调用扩展模型Common/Model文件夹里面
		$this->model=K('Category');
	 }
   /**
    * 分类列表
    */
	public function index(){
		//查询分类表的所有数据
		$data=$this->model->all();
		//把数据变成树状
		$data=Data::tree($data, 'cname');
		$this->assign('data',$data);
		
		
		$this->display();
		
	}
	/**
    * 添加顶级分类
    */
	public function addCate(){
		if(IS_POST){
			$model=$this->model;
			//如果验证失败 ，提示错误信息（$model->error 会在模型create之后把错误压入进去）
			if(!$model->addCate()) $this->error($model->error);
		    $this->success('添加成功',U('index'));
		}
		
		$this->display();
		
	}
	
	/**
	 * 添加子分类
	 */
	public function addSon(){
		if(IS_POST){
			if(!$this->model->addCate()) $this-error($this->model->error);
			$this->success('添加成功');
		}
		$cid=Q('get.cid',0,'intval');
		//处理所属父级分类
		$fatherCate=$this->model->where("cid={$cid}")->find();
		$this->assign('fatherCate',$fatherCate);
		$this->display();
		
	}
	
	/**
	 * 编辑
	 */
	public function edit(){
		if(IS_POST){
//			p($_POST);die;
			if(!$this->model->_save()) $this->error($this->model->error);
			$this->success('修改成功',U('index'));
		}
		//获取旧数据
		$cid=Q('get.cid',0,'intval');
		$oldData=$this->model->where("cid={$cid}")->find();
		$this->assign('oldData',$oldData);
//		p($oldData);die;
		//处理所属分类
		$allData=$this->model->all();
		//找到相对应分类的所有子集
		$cids=$this->model->getSonCid($cid,$allData);
		//因为不包括自己，所以压入一个自己
		$cids[]=$cid;
		//排除自己和子集 implode
		$data=$this->model->where("cid NOT IN(".implode(',', $cids).")")->all();
		//树状结构
		$data=Data::tree($data, 'cname');
//		p($data);die;
		$this->assign('CateData',$data);
		
		$this->display();	
	}
	/**
	 * 删除
	 */
	 public function del(){
	 	$cid=Q('get.cid',0,'intval');
		//如果有子集，请先删除子集
		$son=$this->model->where("pid={$cid}")->find();
		if($son) $this->error('请先删除子集');
		//删除分类
		$this->model->where("cid={$cid}")->delete();
		$this->success('删除成功');
		
		
		
		
		
	 }
}



 ?>